<?

App::import('Sanitize');
App::import('Validation');

class PerdidosController extends AppController {

    var $name = 'Perdidos';
    var $layout = "usuarios";
    var $uses = array('Perdido', 'Mascota', 'Image', 'Google_position');
    var $components = array('UserSession', 'Upload');
    var $image_size = array('width' => '400', 'height' => '300');

//---------------------------------------------------------------------------
//	PAGES
//---------------------------------------------------------------------------
    function index() {
// 		$perdidos = $this->Perdidos->find("all",array('order'=>'Perdidos.fecha DESC'));
        $ciudades = $this->query("SELECT L.id AS id, P.nombre AS Provincia, L.nombre Ciudad FROM localidades AS L INNER JOIN (departamentos AS D INNER JOIN provincias AS P ON ( P.id = D.provincia_id )) ON ( L.departamento_id = D.id )");
        foreach ($ciudades as $ciudad) {
            $this->Perdidos->query("INSERT INTO ciudades (id,provincia,ciudad) VALUES('" . $ciudad['L']['id'] . "','" . $ciudad['P']['Provincia'] . "','" . addslashes($ciudad['L']['Ciudad']) . "')");
        }
        print_r($ciudades);
        exit;
    }

    function registrar() {
        //Chequeo de la sesion y obtengo el usuario en caso de que este logeado.
        $user = $this->UserSession->get();

        $this->set('user', $user);
    }

    //Array ( [Perdido] => Array ( [tipo] => 0 [sexo] => macho [comentario] => asdasdsdsa [filedata] => Array ( [name] => twitter_avatar.jpg [type] => image/jpeg [tmp_name] => /tmp/php876ec1 [error] => 0 [size] => 43995 ) ) [Mascota] => Array ( [Raza] => 0 ) )

    function save() {
        //controlo que el usuario este logueado.
        $user = $this->UserSession->get();

        $filedata = $this->data['Perdido']['filedata'];

        $mascota['Mascota']['tipo'] = $this->data['Perdido']['tipo'];
        $mascota['Mascota']['sexo'] = $this->data['Perdido']['sexo'];
        $mascota['Mascota']['comentario'] = $this->data['Perdido']['comentario'];
        $mascota['Mascota']['edad'] = $this->data['Perdido']['edad'];
        $mascota['Mascota']['raza'] = $this->data['Perdido']['raza'];
        $mascota['Mascota']['nombre'] = $this->data['Perdido']['nombre'];

        if ($this->Mascota->add($mascota)) {//guardo la mascota
            $mascota = $this->Mascota->read();

            $width = $this->image_size['width'];
            $height = $this->image_size['height'];

            if ($this->upload($filedata, $mascota['Mascota']['id'])) {//subo al servidor la imagen asociada a la mascota
                $image['Image']['mascota_id'] = $mascota['Mascota']['id'];
                $image['Image']['images'] = $this->Upload->result;
                $image['Image']['width'] = $width;
                $image['Image']['height'] = $height;

                if ($this->Image->save($image)) {//guardo la imagen asociada a la mascota
                    $image = $this->Image->read();

                    $google['Google_position']['ciudad'] = $this->data['Perdido']['ciudad'];
                    $google['Google_position']['provincia'] = $this->data['Perdido']['provincia'];
                    $google['Google_position']['zona'] = $this->data['Perdido']['zona'];

                    if ($this->Google_position->save($google)) {//guardo la posicion seleccionada por el usuario
                        $google = $this->Google_position->read();

                        $perdido['Perdido']['titulo'] = $this->data['Perdido']['titulo'];
                        $perdido['Perdido']['fecha'] = date('Y-m-d', strtotime($this->data['Perdido']['fecha']));
                        $perdido['Perdido']['usuario_id'] = $user['Usuario']['id'];
                        $perdido['Perdido']['mascota_id'] = $mascota['Mascota']['id'];
                        $perdido['Perdido']['position_id'] = $google['Google_position']['id'];
                        $perdido['Perdido']['comentario'] = $this->data['Perdido']['comentario'];

                        if ($this->Perdido->add($perdido)) {//guargo el registro perdido
                        } else {
                            print_r("no se pudo guardar perdido");
                            exit;
                            //setear el mensaje!. y redireccionar donde corresponda
                        }
                    } else {
                        print_r("no se pudo guardar google_position");
                        exit;
                        //setear el mensaje!. y redireccionar donde corresponda
                    }
                } else {
                    print_r("no se pudo guardar la imagen");
                    exit;
                    //setear el mensaje!. y redireccionar donde corresponda
                }
            } else {
                print_r("no se pudo subir la imagen");
                exit;
                //setear el mensaje!. y redireccionar donde corresponda
            }
        } else {
            print_r("no se pudo guardar la mascota");
            exit;
            //setear el mensaje!. y redireccionar donde corresponda "No se pudo guardar la informacion"!
        }
        $this->redirect(array('controller' => 'perdidos', 'action' => 'index'));
        exit;
    }

    function upload($filedata, $Mascota_id) {
        // set the upload destination folder
        $destination = realpath('../../app/webroot/img/uploads/') . '/';
        // grab the file
        $file = $filedata;
        // upload the image using the upload component
        $width = $this->image_size['width'];
        $height = $this->image_size['height'];

        $result = $this->Upload->upload($file, $destination, null, array('type' => 'resizecrop', 'size' => array($width, $height), 'output' => 'jpg'));

        if (!$result) {
            return true;
        } else {
            return false;
        }
    }

//end of upload
}

?>